业务内置API
提供具体业务对象的内置前端能力,供客开代码能够使用到标准产品的能力快速、高效的实现部分复杂业务逻辑,并且能够保持与标准功能的逻辑互洽。目前提供的能力都是通过Execute Command的方式进行调用。
公共
1. 设置日期字段的最大日期 Commands:Commands.Common_SetMaxDate
- 调用入参说明
参数 | 类型 | 说明 |
---|---|---|
path | String | 字段名称, 子表则为: stages.planStartDate |
value | Date | 日期值 |
- 使用示例
thisApp.formOnLoad = async (ctx) => {
// 设置日期字段的最大日期
ctx.executeCommand(Commands.Common_SetMaxDate, {
path: "planStartDate",
value: new Date(),
});
};
2. 设置日期字段的最小日期 Commands:Commands.Common_SetMinDate
- 调用入参说明
参数 | 类型 | 说明 |
---|---|---|
path | String | 字段名称, 子表则为: stages.planStartDate |
value | Date | 日期值 |
- 使用示例
thisApp.formOnLoad = async (ctx) => {
// 设置日期字段的最小日期
ctx.executeCommand(Commands.Common_SetMinDate, {
path: "planStartDate",
value: new Date(),
});
};
3. 根据来源单据生成当前单据数据 Commands:Commands.Common_SelectSourceData
调用入参说明
参数 类型 说明 objectType String 来源单据 billTypeId String 来源单据类型id businessTypeId String 来源业务类型id ids String 来源的单据id集合 使用示例
thisApp.formOnLoad = async (ctx) => {
ctx.executeCommand(Commands.Common_SelectSourceData, {
objectType: "ArContract",
billTypeId: "xxxx1",
businessTypeId: "xxxx1",
ids: ["xxxx1"]
})
};
附件
1. 控制附件的上传,编辑,删除按钮是否显示 Commands:Commands.Attachment_SetActionDisabled
- 调用入参说明
参数 | 类型 | 说明 |
---|---|---|
action | String | 操作类型,可选值为:upload 、edit 、delete |
disabled | Boolean | 是否禁用操作,true为禁用,false为启用 |
- 使用示例
thisApp.formOnLoad = async (ctx) => {
// 禁用附件的上传功能
ctx.executeCommand(Commands.Attachment_SetActionDisabled, {
action: "upload",
value: false
})
};
项目管理
项目计划
1. 新增 "子级任务" Commands: Commands.ProjectSchedule_AddSubTask
- 概要业务逻辑
根据当前行的任务判断是否能新增下级任务(里程碑任务和已完成的末级任务无法新增下级),若不符合校验逻辑将直接通过弹窗提示错误信息;通过前置性校验后将根据当前任务编号和属性增加下级任务,同时清空与父级任务的约束关系。
业务适用范围:项目任务明细表。 - 调用入参说明
参数 | 类型 | 说明 |
---|---|---|
rowIndex | Number | 基准任务所在的行序号,将对当前基准任务新增下级任务 |
返回值
Boolean: 代表新增子任务的成功状态。使用示例
thisApp.fieldOnChanged = async (ctx) => {
const form = ctx.getFormContext().form;
const currentCtx = ctx.getCurrentContext();
const { subGridName, subGridLine, currentField,fieldName } = currentCtx
// 任务子表的部门值发生变化,且部门编码是1001时执行新增 “子集任务”
if (fieldName === "department" && subGridName === "tasks") {
const value = currentField.value
if (value.code === "1001") {
const result = ctx.executeCommand(Commands.ProjectSchedule_AddSubTask, { rowIndex: subGridLine })
if (result === true) {
return qiqi.ui.message.showSuccess("新增下级成功")
}
return qiqi.ui.message.showError("新增下级任务失败")
}
}
};